""" for循环 """
# 适合场景：遍历一个已知的集合，找出满足条件的元素，并进行相应的操作，那么使用for循环更加简洁

# 打印元组元素：1-10
t = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print(type(t))
for item in t:
    print(item)

# 列表[] 集合{} 都类似
# ……

print("## 遍历字典")
# 字典{} 特殊一点, 字典本身只有key可以迭代
d = {"name": "zhangsan", "age": 18, "sex": "male"}
print("### 迭代字典本身")
# 遍历字典（key）
for key in d:
    print(key, d[key])  # 通过key获取value：d[key]
# 遍历字典的values()（类型：dict_values）
print("### 迭代字典的values()")
for value in d.values():
    print(value)
print("d.values()的类型", type(d.values()))
# 遍历字典的键值对items
print("### 迭代字典的键值对items()")
for key, value in d.items():
    print("key:{},value:{}".format(key, value))

# 通过索引遍历元素，range 是 Python 中一个非常常用的内置函数，用于生成一个整数序列。
print("\n### 通过索引遍历元素")
for i in range(len(t)):
    if i < 5:
        print(t[i])

# 同时获得元素和索引，使用内置函数 enumerate(l)
print("### 同时获得元素和索引")
for index, item in enumerate(t):
    if index < 5:
        print(item)

""" 停止循环 """
# 例一：
# 给两个字典：1 商品名称-商品价格 2 商品名称-商品颜色
# 找出价格小于1000，并且颜色不是红色的所有产品名称和颜色的组合。
name_price = {"电脑": 1999, "鼠标": 10, "游艇": 20,"抽纸": 5, "美女": 10_0000}

print(type(name_price))
name_color = {"电脑": "red", "鼠标": "blue", "游艇": "yellow"}

## 不用continue
print("### 不用continue")
for name,price in name_price.items():
    if price < 1000:    
        if name in name_color:
            #for color in name_color[name]:  遍历单字母
                color = name_color[name]
                if color != "red":
                    print("name:{},color:{}".format(name,color))
        else:
            print("name:{},color:{}".format(name,"无颜色数据"))

## 用continue  逻辑更清晰，更易读
print("### 用continue 更清晰，更易读")
for name,price in name_price.items():
    if price >= 1000:
        continue
    if name not in name_color:
        print("name:{},color:{}".format(name,"无颜色数据"))
        continue
    color = name_color[name]
    if color == "red":
        continue
    print("name:{},color:{}".format(name,color))
